package cn.wolfcode.shop.cloud.service;

import cn.wolfcode.shop.cloud.common.Result;
import cn.wolfcode.shop.cloud.vo.SeckillGoodVo;

import java.util.List;

public interface ISeckillGoodService {
    /**
     * 查询秒杀列表
     * @return
     */
    List<SeckillGoodVo> query();

    SeckillGoodVo findById(Long seckillId);

    /**
     * 减少库存
     * @param seckillId
     * @return
     */
    int decrCount(Long seckillId);

    /**
     * 从redis中获取商品
     * @param seckillId
     * @return
     */
    SeckillGoodVo findByIdCache(Long seckillId);

    /**
     * 从redis中查询所有vo数据
     * @return
     */
    List<SeckillGoodVo> queryCache();

    /**
     * 回补真是库存
     * @param goodId
     */
    void incrCount(Long goodId);

    /**
     * 回补预库存
     * @param goodId
     */
    void syncRedisCount(Long goodId);
}
